package com.snack.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.snack.common.core.annotation.Excel;
import com.snack.common.core.web.domain.BaseEntity;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 今日特价对象 ts_special
 * 
 * @author snack
 * @date 2022-09-18
 */
@Data
public class TsSpecial extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 特价id */
    private Long specialId;

    /** 商品id */
    @NotNull(message = "请选择商品")
    @Excel(name = "商品id")
    private Long goodsId;

    /** 开始时间 */
    @NotNull(message = "开始时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @NotNull(message = "结束时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 优惠类型P:百分比 S:固定金额 */
    @NotEmpty(message = "优惠类型不能为空")
    @Pattern(regexp = "[PS]",message = "优惠类型格式错误")
    @Excel(name = "优惠类型P:百分比 S:固定金额")
    private String type;

    /** 优惠参数 */
    @NotNull(message = "优惠参数不能为空")
    @Excel(name = "优惠参数")
    private BigDecimal param;

    /** 原价 */
    @Excel(name = "原价")
    private BigDecimal priceOld;

    /** 现价 */
    @Excel(name = "现价")
    private BigDecimal priceNow;

    /** 状态（0上架 1下架） */
    @NotEmpty(message = "状态不能为空")
    @Pattern(regexp = "[01]",message = "状态格式错误")
    @Excel(name = "状态", readConverterExp = "0=上架,1=下架")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;
}
